package com.umpay.dto.merBusi.req.register;


import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.NotEmpty;

import com.umpay.annotation.Pattern;
import com.umpay.dto.merBusi.req.CommonBusiReq;

public class SubMerRegisterBusiReq extends CommonBusiReq {
	
	@NotNull(message = "商户号不能为空")
	@Pattern(message = "商户号格式不正确")
	private String merId;//	商户号	变长8	Y	商户在支付平台分配的商户号\\d{4,8}
	@NotNull(message = "业务产品号不能为空")
	@Pattern(message = "业务产品号格式不正确")
	private String bProductId	;//业务产品号	变长8	Y	商户业务产品号(B)\\w{7}
	@NotNull(message = "支付产品号不能为空")
	@Pattern(message = "支付产品号格式不正确")
	private String pProductId	;//支付产品号	变长8	Y	商户原子产品号(P)\\w{7}
	@NotNull(message = "商户订单号不能为空")
	@Pattern(message = "商户订单号格式不正确")
	private String orderId;//	商户订单号	变长20	Y	商户订单号支持数字、英文字母，其他字符不建议使用 长度4至20位
	@NotNull(message = "商户订单日期不能为空")
	@Pattern(message = "商户订单日期格式不正确")
	private String orderDate;//	商户订单日期	定长8	Y	商户生成订单的日期，格式YYYYMMDD
	@NotEmpty(message = "子商户编号不能为空")
	@Pattern(message = "子商户编号格式不正确")
	private String subMerId;//	子商户编号	变长20	商户平台给子商户分配的唯一标识，该值必须是商户平台中子商户的真实编号	Y
	@NotEmpty(message = "子商户类型不能为空")
	@Pattern(message = "子商户类型格式不正确")
	private String subMerType;//	子商户类型	定长1	1：个人商户	2：个体商户	3：企业商户	Y
	@NotEmpty(message = "子商户名称不能为空")
	@Pattern(message = "子商户名称格式不正确")
	private String subMerName	;//子商户名称	变长32	如果传递中文，需确保该字段在传入接口前，编码正确，使用UTF-8编码	Y
	@NotEmpty(message = "子商户别名不能为空")
	@Pattern(message = "子商户别名格式不正确")
	private String subMerAlias;//	子商户别名	变长32	如果传递中文，需确保该字段在传入接口前，编码正确，使用UTF-8编码	Y
	@NotEmpty(message = "证件类型不能为空")
	@Pattern(message = "证件类型格式不正确")
	private String certType;//	证件类型	变成2	1：营业执照 	2：统一社会信用代码	3：居民身份证	Y
	@NotEmpty(message = "证照号不能为空")
	@Pattern(message = "证照号格式不正确")
	private String certId;//	证照号	变长18	certtype为1: 营业执照号码	certtype为2:18位信用代码证	certtype为3: 居民身份证号码	Y
	@Pattern(message = "组织机构代码证号格式不正确")
	private String organizationId;//	组织机构代码证号	变长 32	certtype为1（非三证合一）时必填	N
	@Pattern(message = "税务登记证号格式不正确")
	private String taxRegistrationId;//	税务登记证号	变长32	certtype为1（非三证合一）时必填	N
	@Pattern(message = "法人姓名格式不正确")
	private String legalName;//	法人姓名	变长32	certtype = 1、2时必填  	3des加密 	N
	@Pattern(message = "法人证件类型格式不正确")
	private String identityType	;//法人证件类型	变长2	certtype = 1、2时必填	传入固定值： 1：居民身份证	N
	@Pattern(message = "法人证件号格式不正确")
	private String identityId;//	法人证件号	变长256	certtype = 1、2时必填	3des加密	证件类型为身份证时，仅支持18位身份证号	N
	@Pattern(message = "联系人格式不正确")
	private String contactsName;//	联系人	变长 32	certtype = 1、2时必填	3des加密	N
	@NotEmpty(message = "手机号不能为空")
	@Pattern(message = "手机号格式不正确")
	private String mobileId;//	手机号	定长11	手机号	Y
	@Pattern(message = "邮箱地址格式不正确")
	private String email;//	邮箱地址	变长64		N
	@Pattern(message = "联系地址格式不正确")
	private String address;//	联系地址	变长256		N
	@Pattern(message = "异步通知地址格式不正确")
	private String notifyUrl;//	异步通知地址	变长128	交易成功后，会按照此地址将交易结果以后台的方式发送到商户平台；如果请求中不传则不给商户平台进行异步通知	N

	@NotEmpty(message = "账户类型不能为空")
	@Pattern(message = "账户类型格式不正确")
	private String accType;//	账户类型
	
	public String getMerId() {
		return merId;
	}
	public void setMerId(String merId) {
		this.merId = merId;
	}
	public String getbProductId() {
		return bProductId;
	}
	public void setbProductId(String bProductId) {
		this.bProductId = bProductId;
	}
	public String getpProductId() {
		return pProductId;
	}
	public void setpProductId(String pProductId) {
		this.pProductId = pProductId;
	}
	public String getOrderId() {
		return orderId;
	}
	public void setOrderId(String orderId) {
		this.orderId = orderId;
	}
	public String getOrderDate() {
		return orderDate;
	}
	public void setOrderDate(String orderDate) {
		this.orderDate = orderDate;
	}
	public String getSubMerId() {
		return subMerId;
	}
	public void setSubMerId(String subMerId) {
		this.subMerId = subMerId;
	}
	public String getSubMerType() {
		return subMerType;
	}
	public void setSubMerType(String subMerType) {
		this.subMerType = subMerType;
	}
	public String getSubMerName() {
		return subMerName;
	}
	public void setSubMerName(String subMerName) {
		this.subMerName = subMerName;
	}
	public String getSubMerAlias() {
		return subMerAlias;
	}
	public void setSubMerAlias(String subMerAlias) {
		this.subMerAlias = subMerAlias;
	}
	public String getCertType() {
		return certType;
	}
	public void setCertType(String certType) {
		this.certType = certType;
	}
	public String getCertId() {
		return certId;
	}
	public void setCertId(String certId) {
		this.certId = certId;
	}
	public String getOrganizationId() {
		return organizationId;
	}
	public void setOrganizationId(String organizationId) {
		this.organizationId = organizationId;
	}
	public String getTaxRegistrationId() {
		return taxRegistrationId;
	}
	public void setTaxRegistrationId(String taxRegistrationId) {
		this.taxRegistrationId = taxRegistrationId;
	}
	public String getLegalName() {
		return legalName;
	}
	public void setLegalName(String legalName) {
		this.legalName = legalName;
	}
	public String getIdentityType() {
		return identityType;
	}
	public void setIdentityType(String identityType) {
		this.identityType = identityType;
	}
	public String getIdentityId() {
		return identityId;
	}
	public void setIdentityId(String identityId) {
		this.identityId = identityId;
	}
	public String getContactsName() {
		return contactsName;
	}
	public void setContactsName(String contactsName) {
		this.contactsName = contactsName;
	}
	public String getMobileId() {
		return mobileId;
	}
	public void setMobileId(String mobileId) {
		this.mobileId = mobileId;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getNotifyUrl() {
		return notifyUrl;
	}
	public void setNotifyUrl(String notifyUrl) {
		this.notifyUrl = notifyUrl;
	}
	public String getAccType() {
		return accType;
	}
	public void setAccType(String accType) {
		this.accType = accType;
	}
	@Override
	public String toString() {
		return "SubMerRegisterBusiReq [merId=" + merId + ", bProductId=" + bProductId + ", pProductId=" + pProductId
		        + ", orderId=" + orderId + ", orderDate=" + orderDate + ", subMerId=" + subMerId + ", subMerType="
		        + subMerType + ", subMerName=" + subMerName + ", subMerAlias=" + subMerAlias + ", certType=" + certType
		        + ", certId=" + certId + ", organizationId=" + organizationId + ", taxRegistrationId="
		        + taxRegistrationId + ", legalName=" + legalName + ", identityType=" + identityType + ", identityId="
		        + identityId + ", contactsName=" + contactsName + ", mobileId=" + mobileId + ", email=" + email
		        + ", address=" + address + ", notifyUrl=" + notifyUrl + ", accType=" + accType + "]";
	}
	
}
